package com.javafx.application;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.control.Button;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.*;
import javafx.stage.Stage;


public class Main7 extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception{
        //Group root = new Group();
        BorderPane root = new BorderPane();

        /**
         *  菜单栏和工具栏的位置
         */

        //横向布局
        HBox mePos = new HBox();
        //纵向布局
        VBox meVPos = new VBox();
        // 创建一个菜单栏对象
        MenuBar menuBar = new MenuBar();
        // 将菜单栏的宽度与窗口的宽度进行绑定
        menuBar.prefWidthProperty().bind(primaryStage.widthProperty());
        // 将菜单栏设置在顶部
        //root.setTop(menuBar);

        // 文件菜单选项
        Menu menu1 = new Menu("文件");
        // 文件菜单的子菜单
        MenuItem item1 = new MenuItem("打开");
        MenuItem item2 = new MenuItem("另存为");
        MenuItem item3 = new MenuItem("保存");

        menu1.getItems().addAll(item1, item2, item3);
        // 编辑菜单选项
        Menu menu2 = new Menu("编辑");
        // 文件菜单的子菜单
        MenuItem item4 = new MenuItem("撤销\t Ctrl+Z");
        MenuItem item5 = new MenuItem("恢复\t Ctrl+Y");
        MenuItem item6 = new MenuItem("复制\t Ctrl+C");
        MenuItem item7 = new MenuItem("粘贴\t Ctrl+V");

        menu2.getItems().addAll(item4, item5, item6, item7);

        Menu menu3 = new Menu("帮助");
        MenuItem item8 = new MenuItem("查看帮助手册");

        menu3.getItems().addAll(item8);

        Menu menu4 = new Menu("关于");
        // 将Menu对象添加到菜单栏
        menuBar.getMenus().addAll(menu1, menu2,menu3,menu4);


        HBox gongjuPos = new HBox(10);
        //gongjuPos.setPrefHeight(50);
        //gongjuPos.setAlignment(Pos.BOTTOM_RIGHT);

        Button button = new Button("工具栏位置");
        Button button1 = new Button("恢复");
        Button button2 = new Button("复制");
        Button button3 = new Button("粘贴");

        gongjuPos.getChildren().addAll(button,button1,button2,button3);


        //root.getChildren().add(gongjuPos);
        //root.setCenter(gongjuPos);
        //添加横线
        Separator separator = new Separator();
        Separator separator1 = new Separator();
        //工具栏和菜单栏添加到纵向布局中
        meVPos.getChildren().addAll(menuBar,separator,gongjuPos,separator1);
        //root.getChildren().add(menuBar);
        //将纵向布局添加到横向布局中
        mePos.getChildren().add(meVPos);
        //将菜单栏和工具栏置顶显示
        root.setTop(mePos);


        /**
         * 图形库位置,纵向布局
         */

        VBox tuxingPos = new VBox();
        //创建基础图形的根节点
        TreeItem treeItem = new TreeItem("基础图形");
        treeItem.setExpanded(true);
        TreeItem rec = new TreeItem(new ImageView(new Image("/static/down.png")),
                new ImageView(new Image("/static/五边形.png")));
        TreeItem rec1 = new TreeItem(new ImageView(new Image("/static/三角形.png")),
                new ImageView(new Image("/static/椭圆.png")));

        treeItem.getChildren().addAll(rec,rec1);

        TreeView view = new TreeView(treeItem);
        view.setPrefWidth(200);

        //root.getChildren().add(tuxingPos);

        //创建smart图形的根节点
        TreeItem smItem = new TreeItem("FlowChart 流程图");
        smItem.setExpanded(true);
        TreeItem rec2 = new TreeItem(new ImageView(new Image("/static/down.png")),
                new ImageView(new Image("/static/五边形.png")));
        TreeItem rec3 = new TreeItem(new ImageView(new Image("/static/三角形.png")),
                new ImageView(new Image("/static/椭圆.png")));

        smItem.getChildren().addAll(rec2,rec3);
        TreeView view1 = new TreeView(smItem);
        view1.setPrefWidth(200);

        tuxingPos.getChildren().addAll(view,view1);

        root.setLeft(tuxingPos);

        /**
         * 编辑区域的位置
         */
        
        StackPane bianjiPos = new StackPane();

        bianjiPos.setStyle("-fx-background-color:#3f4f5f");
        bianjiPos.setPrefWidth(400);


        //root.getChildren().add(bianjiPos);
        root.setCenter(bianjiPos);


        primaryStage.setScene(new Scene(root, 900, 700));
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}
